[id].vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <LayoutContainer>
  3. <UiLoadingPanel v-if="pending" />
  4. <div v-else>
  5. <h2>EducationTiming</h2>
  6. <UiForm
  7. ref="form"
  8. :model="EducationTiming"
  9. :entity="education_timings"
  10. :submitActions="submitActions"
  11. >
  12. <UiInputNumber
  13. field="educationtiming"
  14. v-model="education_timings.timing"
  15. :rules="rules"
  16. />
  17. </UiForm>
  18. </div>
  19. </LayoutContainer>
  20. </template>
  21. <script setup lang="ts">
  22. import { ref, computed } from 'vue'
  23. import { useEntityFetch } from '~/composables/data/useEntityFetch'
  24. import EducationTiming from '~/models/Education/EducationTiming'
  25. import { useRoute } from 'vue-router'
  26. import { useI18n } from 'vue-i18n'
  27. import { AnyJson } from '~/types/data'
  28. import { SUBMIT_TYPE } from '~/types/enum/enums'
  29. const i18n = useI18n()
  30. const { fetch } = useEntityFetch()
  31. const route = useRoute()
  32. const idValue = Array.isArray(route.params.id)
  33. ? route.params.id[0]
  34. : route.params.id
  35. const educationTimingID = ref(parseInt(idValue))
  36. const goBackRoute = { path: `/parameters`, query: { tab: 'educationTimings' } }
  37. const submitActions = computed(() => {
  38. let actions: AnyJson = {}
  39. actions[SUBMIT_TYPE.SAVE_AND_BACK] = goBackRoute
  40. return actions
  41. })
  42. const { data: education_timings, pending } = fetch(
  43. EducationTiming,
  44. educationTimingID.value
  45. )
  46. console.log(education_timings)
  47. const rules = () => [
  48. (timing: string | null) =>
  49. (timing !== null && timing.length > 0) || i18n.t('please_enter_a_value'),
  50. ]
  51. </script>